<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>Hints on Running a High-Performance Web Server</title>
</head>

<body>
<!--#include virtual="header.html" -->
<h2>Hints on Running a High-Performance Web Server</H2>

Running Apache on a heavily loaded web server, one often encounters
problems related to the machine and OS configuration.  "Heavy" is
relative, of course - but if you are seeing more than a couple hits
per second on a sustained basis you should consult the pointers on
this page.  In general the suggestions involve how to tune your kernel
for the heavier TCP load, hardware/software conflicts that arise, etc.

<UL>
<LI><A HREF="#AUX">A/UX (Apple's UNIX)</A>
<LI><A HREF="#BSD">BSD-based (BSDI, FreeBSD, etc)</A>
<LI><A HREF="#DEC">Digital UNIX</A>
<LI><A HREF="#HP">Hewlett-Packard</A>
<LI><A HREF="#Linux">Linux</A>
<LI><A HREF="#SGI">SGI</A>
<LI><A HREF="#Solaris">Solaris</A>
<LI><A HREF="#SunOS">SunOS 4.x</A>
</UL>

<HR>

<A NAME="AUX">
<H3>A/UX (Apple's UNIX)</H3>
</A>

If you are running Apache on A/UX, a page that gives some helpful
performance hints (concerning the <I>listen()</I> queue and using
virtual hosts)
<A HREF="http://www.jaguNET.com/apache.html">can be found here</A>

<P><HR>

<A NAME="BSD">
<H3>BSD-based (BSDI, FreeBSD, etc)</H3>
</A>

<A HREF="perf-bsd44.html#initial">Quick</A> and
<A HREF="perf-bsd44.html#detail">detailed</A>
performance tuning hints for BSD-derived systems.

<P><HR>

<A NAME="DEC">
<H3>Digital UNIX</H3>
</A>

We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to
tune Digital UNIX 3.2 and 4.0.

<P><HR>

<A NAME="HP">
<H3>Hewlett-Packard</H3>
</A>

Some documentation on tuning HP machines can be found at <A
HREF="http://www.software.hp.com/internet/perf/tuning.html">http://www.software.hp.com/internet/perf/tuning.html</A>.

<P><HR>

<A NAME="Linux">
<H3>Linux</H3>
</A>

The most common problem on Linux shows up on heavily-loaded systems
where the whole server will appear to freeze for a couple of minutes
at a time, and then come back to life.  This has been traced to a
listen() queue overload - certain Linux implementations have a low
value set for the incoming connection queue which can cause problems.
Please see our <a
href="http://www.qosina.com/~awm/apache/linux-tcp.html">Using Apache on
Linux</a> page for more info on how to fix this.

<P><HR>

<A NAME="SGI">
<H3>SGI</H3>

<UL>
<LI><A HREF="http://www.sgi.com/Products/WebFORCE/TuningGuide.html">
WebFORCE Web Server Tuning Guidelines for IRIX 5.3, 
&lt;http://www.sgi.com/Products/WebFORCE/TuningGuide.html&gt;</A>
</UL>

<P><HR>

<A NAME="Solaris">
<H3>Solaris 2.4</H3>
</A>

The Solaris 2.4 TCP implementation has a few inherent limitations that
only became apparent under heavy loads.  This has been fixed to some
extent in 2.5 (and completely revamped in 2.6), but for now consult
the following URL for tips on how to expand the capabilities if you
are finding slowdowns and lags are hurting performance.

<UL>

<LI><A href="http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/">
World Wide Web Server Performance, 
&lt;http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/&gt;</a>
</UL>

<P><HR>

<A NAME="SunOS">
<H3>SunOS 4.x</H3>
</A>

More information on tuning SOMAXCONN on SunOS can be found at 
<A HREF="http://www.islandnet.com/~mark/somaxconn.html">
http://www.islandnet.com/~mark/somaxconn.html</A>.  

<P><HR>

<H3>More welcome!</H3>

If you have tips to contribute, send mail to <a
href="mailto:brian@organic.com">brian@organic.com</a>

<!--#include virtual="footer.html" -->
</body></html>

